package com.wondertek.service.service.sys;

import cn.hutool.captcha.LineCaptcha;
import com.wondertek.service.dto.sys.req.SysLoginReq;
import com.wondertek.service.dto.sys.req.SysLoginSmsReq;
import com.wondertek.service.dto.sys.req.SysLoginWxReq;
import com.wondertek.service.dto.sys.res.SysLoginRes;

/**
 * @author xqs
 */
public interface ISysAuthService{

    LineCaptcha createCaptcha(String formId);

    /**
     *  登录
     * @param sysLoginReq /
     * @return /
     */
    SysLoginRes login(SysLoginReq sysLoginReq);

    /**
     * 【短信登录】-获取验证码
     * @param mobile /
     */
    void sendSmsCode(String mobile) throws Exception;

    /**
     * 【短信登录】-用户登录
     * @param sysLoginSmsReq /
     * @return /
     */
    SysLoginRes smsLogin(SysLoginSmsReq sysLoginSmsReq);

    /**
     * 【微信登录】-用户登录
     * @param sysLoginWxReq /
     * @return /
     */
    SysLoginRes wxLogin(SysLoginWxReq sysLoginWxReq);

    /**
     *  获取登录用户信息
     * @param token /
     * @return /
     */
    SysLoginRes loginInfo(String token);

    /**
     * 退出登录
     * @param token /
     */
    void logout(String token);

    /**
     *  清除token
     * @param username /
     */
    void cleanToken(String username);

    /**
     * 同步缓存
     *
     */
    void initButtonPermission();
}
